This invention relates generally to network communications, and more particularly but not exclusively, to managing data flow rates over TCP using, in part, temporal delays in acknowledgements with possible Explicit Congestion Notification Echo (ECE) messages to perform data rate throttling.
Transmission Control Protocol/Internet Protocol (TCP/IP) is a well known mechanism used to facilitate the transmission of information between two or more computer systems via one or more networks. Network devices may employ the TCP/IP protocols to create connections with each other and exchange data using network packets. The TCP protocol is known as a connection-oriented protocol that was designed to guarantee reliable, in-order delivery of data.
TCP devices package the data into streams of bytes called segments which may be sent as individual IP datagrams. The TCP checks to make sure that no packets are lost by giving each segment a sequence number which numbers the bytes in the stream, and an acknowledgement number which tells a receiving network device the next expected sequence number, from which the last received sequence number may be intuited. When a network device transmits a TCP packet, it must wait a period of time for an acknowledgement. If the acknowledgement is not received within this period of time, the packet is assumed to be lost, and the packet is retransmitted.
However, networks such as the Internet are designed to support a diverse range of network devices and communication mediums, including such as a large scaled server devices, down to handheld portable devices. Clearly, faster network devices could readily transmit packets significantly faster than many of today's slower devices could accept. Similarly, various network mediums, and interconnect devices, may vary in their capabilities, including speed. Consider, for example, two similar end-point network devices, each employing a Ethernet Local Area Network (LAN), but with the two Ethernets being connected through a 28.8 Kbps modem link. In this configuration, the modem link could quickly become overwhelmed by network packets, should one of the end-point network devices select to transmit at Ethernet speeds.
Typically, control of the data over the network is managed indirectly by the receiver network device sending to the sending network device an advertised window size, called the receive window. The receiver's window size tells the sending network device how much data the receiving network device is prepared to receive. By indicating a large window, the receiver can encourage transmissions of packets. By indicating the maximum amount of data receivable, the sender network device may employ this information to then set its congestion window size to not exceed the receiver's advertised window.
However, often there is an intermediate device interposed between the sending network device and the receiving network device. Such intermediate devices may include a buffer that is configured to receive packets from the sending network device and to forward them to the receiving network device. However, if more data arrives at the intermediate device than can be accepted, some packets may be lost, resulting in traffic congestion. Too much data may also fill the intermediate's buffer, again resulting in potentially lost data. These actions may result in excessive retransmissions, and may add to the load of the network.
Alternatively, indicating a small window by the sending network device may restrict the transmission of data resulting in underutilization of the network and introducing a round trip delay between each packet segment transmitted. Moreover, once a window size is advertised to the other party, it cannot typically be reduced or reneged on (although it might be increased) until all associated data packets have been received. That is, a window size for data packets is not completely dynamic. Thus, dynamically managing data over the network by directly managing a window size may at times be frustrating. Therefore, it is with respect to these considerations and others that the present invention has been made.